package KeyWord.Final;

public class VariableFinal {
    public static void main(String[] args) {
        int num = 10;
        System.out.println(num);
        num = 20;
        System.out.println(num);

        //一旦用final来修饰局部变量，那么这个变量就不能再进行更改
        //一次赋值，终生不变
        final int num1 = 100;
        System.out.println(num1);

        //因为num1被final修饰，所以不能更改
        //num1 = 100;

        //对于基本数据类型来说，不可变的是变量当中的数据不可改变
        //对于引用类型来说，不可变指的是变量当中的地址值不可变

        System.out.println("=============================");
        StarName s = new StarName("赵丽颖");
        System.out.println(s.getName());
        System.out.println(s);
        s = new StarName("霍建华");
        System.out.println(s.getName());
        System.out.println(s);
        //上面没有使用final关键字，所以可以对成员变量做修改，变量的地址值是改变的

        System.out.println("==================");
        final StarName starName1 = new StarName("大佬");
        System.out.println(starName1.getName());
        System.out.println(starName1);
        //因为
        //starName1 = new StarName("小弟");
        starName1.setName("大佬大佬大佬");
        System.out.println(starName1.getName());
        System.out.println(starName1);
        //上面使用final关键字，可以修改局部变量，但是地址值不改变



    }
}
